home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 10 / The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso / PC_SIGCD / 10 / 9 / DISK1095.ZIP / ORDERS.PRG < prev    next >
Text File  |  1980-01-01  |  11KB  |  345 lines

  1. * ORDERS.PRG
  2. * ORDER ENTRY PROGRAM
  3. SET HEADING OFF
  4. SET SAFETY OFF
  5. SET STATUS OFF
  6. CLEAR
  7. CLEAR ALL
  8. SET TALK OFF
  9. SET BELL OFF
  10. @ 1,22 SAY "SMITH'S BIKEWORKS INFORMATION SYSTEM"
  11. @ 2,28 SAY ">> Order Entry System <<"
  12. @ 3,29 SAY "Today's Date: "
  13. ?? DATE()
  14. STORE SPACE(80) TO BLANK
  15. STORE " " TO OPINPUT
  16. STORE 100 TO INV_NUM
  17. @ 10,0 SAY "Beginning Invoice Number " GET INV_NUM PICTURE "9999"
  18. STORE .045 TO TAX_RATE_D
  19. @ 12,0 SAY "Sales Tax Rate " GET TAX_RATE_D PICTURE "9.999"
  20. STORE 102.0 TO ACCOUNT_D
  21. @ 14,0 SAY "Default Account Number " GET ACCOUNT_D PICTURE "999.99"
  22. @ 19,0 SAY ;
  23. "REPLACE VALUES AT CURSOR, OR JUST PRESS ENTER IF CURRENT VALUES ARE"
  24. @ 20,0 SAY ;
  25. "O.K. 'M' HERE RETURNS TO MENU, ANY OTHER KEY STARTS ORDER PROCESSING => ";
  26. GET OPINPUT
  27. READ
  28. STORE UPPER(OPINPUT) TO OPINPUT
  29. IF OPINPUT="M"
  30.    RETURN
  31. ENDIF
  32. * CLEAR SCREEN
  33. STORE 4 TO COUNT
  34. DO WHILE COUNT<23
  35.    @ COUNT,0 SAY BLANK
  36.    STORE COUNT+1 TO COUNT
  37. ENDDO
  38. * OPEN MFG INVENTORY AND RECEIVABLES. CASH PURCHASES USE SEPARATE ENTRY TO
  39. * ACCOUNTING SYSTEM TO PROCESS RECEIPTS
  40. SELECT A
  41. USE MFGINV INDEX MSTOCKNO
  42. SELECT B
  43. USE RECFILE INDEX RFINVID,RFCUSTDT
  44. * FORCE SCREEN TO INITIALIZE
  45. STORE "C" TO OPINPUT
  46. DO WHILE OPINPUT<>"M"
  47. * CLEAR DISPLAY IF CANCEL OR ORDER ENTRY REQUESTS HAVE BEEN ENTERED
  48.    IF OPINPUT="C".OR.OPINPUT="E"
  49. * ENTRIES CURRENTLY ON ORDER FORM
  50.       STORE 0 TO ENTRY_CT
  51.       STORE TAX_RATE_D TO TAX_RATE
  52.       STORE ACCOUNT_D TO ACCOUNT
  53.       STORE " " TO SALE_BASIS
  54.       STORE "            " TO NUMBER
  55.       STORE "                         " TO SOLD_NAME1
  56.       STORE "                         " TO SOLD_NAME2
  57.       STORE "                         " TO SOLD_ADRS
  58.       STORE "               " TO SOLD_CITY
  59.       STORE "  " TO SOLD_ST
  60.       STORE "     " TO SOLD_ZIP
  61.       STORE "                         " TO SHIP_NAME1
  62.       STORE "                         " TO SHIP_NAME2
  63.       STORE "                         " TO SHIP_ADRS
  64.       STORE "               " TO SHIP_CITY
  65.       STORE "  " TO SHIP_ST
  66.       STORE "     " TO SHIP_ZIP
  67. * CLEAR ALL 6 ORDER LINE ENTRIES. USE MACROS TO IDENTIFY VARIABLES
  68.       STORE 1 TO COUNT
  69.       DO WHILE COUNT<=6
  70.          STORE STR(COUNT,1,0) TO IX
  71.          STORE "STKNUM"+IX TO STK
  72.          STORE "          " TO &STK
  73.          STORE "DESCR"+IX TO DES
  74.          STORE "                         " TO &DES
  75.          STORE "PRCE"+IX TO PRC
  76.          STORE 0.00 TO &PRC
  77.          STORE "QUANT"+IX TO QUAN
  78.          STORE 0 TO &QUAN
  79.          STORE COUNT+1 TO COUNT
  80.       ENDDO
  81.    ENDIF
  82. * REDISPLAY BUYER, SHIP TO IF NEW RECORD OR CHANGED
  83.    IF OPINPUT="C".OR.OPINPUT="E".OR.OPINPUT="B"
  84.       @ 4,16 SAY "Buyer"
  85.       @ 4,56 SAY "Ship To"
  86.       @ 5,0 SAY "Name   " GET SOLD_NAME1
  87.       @ 6,0 SAY "       " GET SOLD_NAME2
  88.       @ 7,0 SAY "Address" GET SOLD_ADRS
  89.       @ 8,0 SAY "City" GET SOLD_CITY
  90.       @ 8,22 SAY "St" GET SOLD_ST
  91.       @ 8,29 SAY "Zip" GET SOLD_ZIP
  92.       IF OPINPUT<>"B"
  93.          CLEAR GETS
  94.       ELSE
  95.          READ
  96.       ENDIF
  97.    ENDIF
  98.    IF OPINPUT="C".OR.OPINPUT="E".OR.OPINPUT="S"
  99.       @ 5,40 SAY "Name   " GET SHIP_NAME1
  100.       @ 6,40 SAY "       " GET SHIP_NAME2
  101.       @ 7,40 SAY "Address" GET SHIP_ADRS
  102.       @ 8,40 SAY "City" GET SHIP_CITY
  103.       @ 8,62 SAY "St" GET SHIP_ST
  104.       @ 8,69 SAY "Zip" GET SHIP_ZIP
  105.       IF OPINPUT<>"S"
  106.          CLEAR GETS
  107.       ELSE
  108.          READ
  109.       ENDIF
  110.    ENDIF
  111.    IF OPINPUT="C".OR.OPINPUT="E".OR.OPINPUT="P"
  112.       @ 10,10 SAY "Tax Rate For This Sale " GET TAX_RATE PICTURE "9.999"
  113.       @ 10,50 SAY "Invoice Number " GET INV_NUM PICTURE "9999"
  114.       @ 11,0 SAY "<C>ash/<M>Chg/<V>isa/<B>ill " GET SALE_BASIS
  115.       @ 11,34 SAY "Card, Check Num " GET NUMBER
  116.       @ 11,65 SAY "Account " GET ACCOUNT PICTURE "999.9"
  117.       IF OPINPUT<>"P"
  118.          CLEAR GETS
  119.       ELSE
  120.          READ
  121.       ENDIF
  122.    ENDIF
  123.    IF OPINPUT="C".OR.OPINPUT="E".OR.OPINPUT="A".OR.OPINPUT="D"
  124.       @ 13,5 SAY "STOCK NUMBER"
  125.       @ 13,20 SAY "DESCRIPTION"
  126.       @ 13,52 SAY " PRICE"
  127.       @ 13,63 SAY " QTY"
  128.       @ 13,70 SAY "SUBTOTAL"
  129.       STORE 1 TO COUNT
  130.       STORE 0.00 TO TOTAL
  131.       STORE 0.00 TO TAX
  132.       DO WHILE COUNT<=6
  133.          @ 13+COUNT,0 SAY BLANK
  134.          STORE COUNT+1 TO COUNT
  135.       ENDDO
  136.       STORE 1 TO COUNT
  137.       DO WHILE COUNT<=ENTRY_CT
  138.          STORE STR(COUNT,1,0) TO IX
  139.          STORE "STKNUM"+IX TO STK
  140.          STORE "DESCR"+IX TO DES
  141.          STORE "PRCE"+IX TO PRC
  142.          STORE "QUANT"+IX TO QUAN
  143.          STORE 13+COUNT TO LINENOW
  144.          @ LINENOW,0 SAY IX+":"
  145.         @ LINENOW,5 SAY &STK
  146.          @ LINENOW,20 SAY &DES
  147.          @ LINENOW,50 SAY STR(&PRC,8,2)
  148.          @ LINENOW,63 SAY STR(&QUAN,4,0)
  149.          @ LINENOW,70 SAY STR(&PRC*&QUAN,8,2)
  150.          STORE TOTAL+&PRC*&QUAN TO TOTAL
  151.          STORE COUNT+1 TO COUNT
  152.       ENDDO
  153.       @ 20,60 SAY "TAX:"
  154.       STORE TOTAL*TAX_RATE+.005 TO TAX
  155.       @ 20,70 SAY STR(TAX,8,2)
  156.       @ 21,60 SAY "TOTAL:"
  157.       @ 21,70 SAY STR(TOTAL+TAX,8,2)
  158.    ENDIF
  159.    STORE " " TO OPINPUT
  160.    @ 23,0 SAY ;
  161. "<B>uyer  <S>hip  <P>ay  <A>dd.Item  <D>el.Item  <C>ancel  <E>nter  <M>enu ";
  162.    GET OPINPUT
  163.    READ
  164.    STORE UPPER(OPINPUT) TO OPINPUT
  165.    DO CASE
  166.    CASE OPINPUT="D"
  167.       STORE 0 TO DELLINE
  168.       @ 23,0 SAY BLANK
  169.       @ 23,0 SAY "Order Line Number To Delete " GET DELLINE PICTURE "9"
  170.       READ
  171.       IF DELLINE>0.AND.DELLINE<=ENTRY_CT
  172. * REPACK ENTRIES ON INVOICE
  173.          STORE DELLINE TO COUNT
  174.          DO WHILE COUNT<ENTRY_CT
  175.             STORE STR(COUNT,1,0) TO IX
  176.             STORE STR(COUNT+1,1,0) TO IX1
  177.             STORE "STKNUM"+IX TO STK
  178.             STORE "STKNUM"+IX1 TO TEMP
  179.             STORE &TEMP TO &STK
  180.             STORE "DESCR"+IX TO DES
  181.             STORE "DESCR"+IX1 TO TEMP
  182.             STORE &TEMP TO &DES
  183.             STORE "PRCE"+IX TO PRC
  184.             STORE "PRCE"+IX1 TO TEMP
  185.             STORE &TEMP TO &PRC
  186.             STORE "QUANT"+IX TO QUAN
  187.             STORE "QUANT"+IX1 TO TEMP
  188.             STORE &TEMP TO &QUAN
  189.             STORE COUNT+1 TO COUNT
  190.          ENDDO
  191.          STORE ENTRY_CT-1 TO ENTRY_CT
  192.       ENDIF
  193.    CASE OPINPUT="A"
  194.       IF ENTRY_CT<6
  195.          STORE ENTRY_CT+1 TO ENTRY_CT
  196.          STORE STR(ENTRY_CT,1,0) TO IX
  197.          STORE "STKNUM"+IX TO STK
  198.          STORE "DESCR"+IX TO DES
  199.          STORE "PRCE"+IX TO PRC
  200.          STORE "QUANT"+IX TO QUAN
  201.          STORE 13+ENTRY_CT TO LINENOW
  202.          @ LINENOW,4 GET &STK
  203.          READ
  204.          SELECT A
  205.          STORE &STK TO TEMP
  206.          FIND &TEMP
  207.          IF (EOF() .OR. BOF())
  208.             @ 23,0 SAY BLANK
  209.             STORE " " TO ACTION
  210.             @ 23,1 SAY ;
  211. "** STOCK NUMBER NOT FOUND. 'E' KEY ALLOWS DATA ENTRY, ANY OTHER CANCELS " ;
  212.             GET ACTION
  213.             READ
  214.             IF ACTION<>'E'
  215.                STORE ENTRY_CT-1 TO ENTRY_CT
  216.             ELSE
  217.                @ 23,0 SAY BLANK
  218.                @ LINENOW,19 GET &DES
  219.                @ LINENOW,49 GET &PRC PICTURE "99999.99"
  220.                @ LINENOW,62 GET &QUAN PICTURE "9999"
  221.                READ
  222.             ENDIF
  223.          ELSE
  224. * STOCK NUMBER WAS FOUND
  225.             @ LINENOW,20 SAY A->DESCRIPT
  226.             STORE A->DESCRIPT TO &DES
  227.             STORE A->PRICE TO &PRC
  228.             @ 23,0 SAY BLANK
  229.             @ 23,0 SAY "Current Item Price $"
  230.             ?? A->PRICE, "   Current Quantity on Hand :",A->ON_HAND
  231.             @ LINENOW,49 GET &PRC PICTURE "99999.99"
  232.             @ LINENOW,62 GET &QUAN PICTURE "9999"
  233.             READ
  234.          ENDIF
  235.       ENDIF
  236.    CASE OPINPUT="E"
  237. * OUTPUT INVOICE AND SHIPPING LABEL THEN UPDATE INVENTORY RECORDS AND
  238. * RECEIVABLES FILE IF APPROPRIATE
  239.       SET CONSOLE OFF
  240.       SET PRINT ON
  241.       SET DEVICE TO PRINT
  242. * PRINT TWO COPIES, ONE FOR INVOICE, ONE FOR PACKING SLIP
  243.       STORE 1 TO COPY
  244.       STORE 1 TO LINENOW
  245.       DO WHILE COPY<=2
  246.          @ LINENOW,31 SAY "SMITH'S BIKEWORKS"
  247.          @ LINENOW+1,30 SAY "101 East Main Street"
  248.          @ LINENOW+2,31 SAY "Midtown, SC 22222"
  249.          @ LINENOW+4,25 SAY DTOC(DATE())+"  INVOICE NUMBER: "+STR(INV_NUM,4,0)
  250.          @ LINENOW+6,10 SAY "Sold To"
  251.          @ LINENOW+6,50 SAY "Ship To"
  252.          @ LINENOW+8,0 SAY SOLD_NAME1
  253.          @ LINENOW+8,47 SAY SHIP_NAME1
  254.          @ LINENOW+9,0 SAY SOLD_NAME2
  255.          @ LINENOW+9,47 SAY SHIP_NAME2
  256.          @ LINENOW+10,0 SAY SOLD_ADRS
  257.          @ LINENOW+10,47 SAY SHIP_ADRS
  258.          @ LINENOW+11,0 SAY TRIM(SOLD_CITY)+","+SOLD_ST+" "+SOLD_ZIP
  259.          @ LINENOW+11,47 SAY TRIM(SHIP_CITY)+","+SHIP_ST+" "+SHIP_ZIP
  260.          DO CASE
  261.             CASE SALE_BASIS="C"
  262.                @ LINENOW+13,0 SAY "CASH SALE: "+NUMBER
  263.             CASE SALE_BASIS="M"
  264.                @ LINENOW+13,0 SAY "MASTER CHARGE: "+NUMBER
  265.             CASE SALE_BASIS="V"
  266.                @ LINENOW+13,0 SAY "VISA: "+NUMBER
  267.             CASE SALE_BASIS="B"
  268.                @ LINENOW+13,0 SAY "TERMS: PAYABLE ON RECEIPT OF INVOICE"
  269.          ENDCASE
  270.          @ LINENOW+15,5 SAY "STOCK NUMBER"
  271.          @ LINENOW+15,20 SAY "DESCRIPTION"
  272.          @ LINENOW+15,53 SAY "PRICE"
  273.          @ LINENOW+15,63 SAY " QTY"
  274.          @ LINENOW+15,70 SAY "SUBTOTAL"
  275.          STORE 1 TO COUNT
  276.          IF COPY = 1
  277.             STORE 0.00 TO TOTAL
  278.          ENDIF
  279.          STORE LINENOW+17 TO LINENOW
  280.          DO WHILE COUNT<=ENTRY_CT
  281.             STORE STR(COUNT,1,0) TO IX
  282.             STORE "STKNUM"+IX TO STK
  283.             STORE "DESCR"+IX TO DES
  284.             STORE "PRCE"+IX TO PRC
  285.             STORE "QUANT"+IX TO QUAN
  286.             @ LINENOW,0 SAY IX+":"
  287.             @ LINENOW,5 SAY &STK
  288.             @ LINENOW,20 SAY &DES
  289.             IF COPY=1
  290.                @ LINENOW,50 SAY STR(&PRC,8,2)
  291.             ENDIF
  292.             @ LINENOW,63 SAY STR(&QUAN,4,0)
  293.             IF COPY=1
  294.                @ LINENOW,70 SAY STR(&PRC*&QUAN,8,2)
  295.                STORE TOTAL+&PRC*&QUAN TO TOTAL
  296.             ENDIF
  297.             STORE LINENOW+1 TO LINENOW
  298.             STORE COUNT+1 TO COUNT
  299.          ENDDO
  300.          IF COPY=1
  301.             @ LINENOW+1,60 SAY "TAX:"
  302.             STORE TOTAL*TAX_RATE+.005 TO TAX
  303.             @ LINENOW+1,70 SAY STR(TAX,8,2)
  304.             @ LINENOW+2,60 SAY "TOTAL:"
  305.             @ LINENOW+2,70 SAY STR(TOTAL+TAX,8,2)
  306.          ENDIF
  307.          STORE 33 TO LINENOW
  308.          STORE COPY+1 TO COPY
  309.       ENDDO
  310.       EJECT
  311.       SET DEVICE TO SCREEN
  312.       SET PRINT OFF
  313.       SET CONSOLE ON
  314. * UPDATE ALL INVENTORY RECORDS
  315.       SELECT A
  316.       STORE 1 TO COUNT
  317.       DO WHILE COUNT<=ENTRY_CT
  318.          STORE STR(COUNT,1,0) TO IX
  319.          STORE "STKNUM"+IX TO STK
  320.          STORE &STK TO TEMP
  321.          FIND &TEMP
  322.          IF .NOT. EOF()
  323.             STORE "QUANT"+IX TO QUAN
  324.             STORE &QUAN TO NUMTEMP
  325.             REPLACE ON_HAND WITH A->ON_HAND-NUMTEMP, ;
  326.             PER_SALES WITH A->PER_SALES+NUMTEMP, ;
  327.             CUM_SALES WITH A->CUM_SALES+NUMTEMP
  328.          ENDIF
  329.          STORE COUNT+1 TO COUNT
  330.       ENDDO
  331. * IF CREDIT SALE, GENERATE RECEIVABLES RECORD
  332.       IF SALE_BASIS="B"
  333.          SELECT B
  334.          APPEND BLANK
  335.          REPLACE ACCT_NUM WITH ACCOUNT, DATE_RECD WITH DATE(), ;
  336.          INVOICE_ID WITH STR(INV_NUM,5,0), CUSTOMER WITH SOLD_NAME1, ;
  337.          DATE_DUE WITH DATE(), AMOUNT WITH TOTAL, LAST_UPDT WITH DATE()
  338.       ENDIF
  339. * UPDATE TO NEXT SEQUENTIAL INVOICE NUMBER
  340.       STORE INV_NUM+1 TO INV_NUM
  341.    ENDCASE
  342. ENDDO
  343. CLEAR
  344. RETURN
  345.